﻿/************************************************************************

   Extended Silverlight Toolkit

   Copyright (C) 2010-2012 Xceed Software Inc.

   This program is provided to you under the terms of the Microsoft Public
   License (Ms-PL) as published at http://extendedsilverlight.codeplex.com/license

   Please purchase a commercial version of this toolkit if you are using
   it in a commercial product. The commercial versions support the project,
   and also include more features for each control, priority support,
   source code, updates, removed watermark, and a proprietary license.

   Visit http://xceed.com and follow @datagrid on Twitter.

  **********************************************************************/

using System.ComponentModel;
using System.Windows;

namespace Xceed.Silverlight.ListBox
{
    public abstract class ThemeResourceDictionary : ResourceDictionary, ISupportInitialize
    {
        protected ThemeResourceDictionary()
        {
        }

        public StyleUsageMode StyleUsageMode
        {
            get
            {
                return m_styleUsageMode;
            }

            set
            {
                if (value != m_styleUsageMode)
                {
                    m_styleUsageMode = value;

                    if (m_initCount == 0)
                    {
                        this.UpdateResources();
                    }
                }
            }
        }

        protected abstract void UpdateResources();

        private StyleUsageMode m_styleUsageMode = StyleUsageMode.Implicit;

        public void BeginInit()
        {
            m_initCount++;
        }

        public void EndInit()
        {
            m_initCount--;

            if (m_initCount == 0)
            {
                this.UpdateResources();
            }
        }

        private int m_initCount = 0;

    }
}
